package com.tbit.uqbike.client.pojo.autoInvoice;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * @description: 自动开票请求参数
 * @author: mo.shanyong
 * @date: 2025/4/2 15:07
 */

@AllArgsConstructor
@NoArgsConstructor
@Data
public class AutoInvoiceBody implements Serializable {
    private static final long serialVersionUID = 2827991028383938586L;

    /**
     * 同步开票标志：true-同步，false-异步；不传默认同步
     * */
    private boolean sync = false;
    /**
     *局端对购方信息会有校验，信息有误时会提示”当前未查询到购买方纳税人信息，请确认是否继续开具”,可传0强制开具，默认非强制开具
     * */
    private Integer gfxxqr = 0;
    /**
     * 发票请求流水号
     * */
    private String fpqqlsh;

    /**
     * 销方名称（品牌方公司名称）
     * */
    private String xfmc;

    /**
     * 纳税人识别号
     * */
    private String nsrsbh;
    /**
     * 含税标志：
     * 0：不含税
     * 1：含税
     * */
    private String hsbz = "1";
    /**
     * 发票类型代码，数电票类型代码包括：
     * 81 数电专票
     * 82 数电普票
     * 85 数电专票（纸质）
     * 86 数电普票（纸质）
     * 87 机动车销售发票
     * 88 二手车销售发票
     * */
    private String fplxdm = "82";

    /**
     * 特定要素类型代码，特定业务必填，若不使用，请传空字符串
     *
     * */
    private String tdyslxdm = "";
    /**
     * Y-是 N-否
     * 受票方自然人标识：如开票给自然人，此标识请选择“Y”，购买方名称填写必须大于一个字符。反之则意为开票给单位。
     * 开具除特定业务外的普通发票，如受票方为自然人，请根据实际需要填写姓名或姓。（例如：张某某，可在名称栏次填写：张某某、张先生或张女士）；
     * 如受票方为自然人并要求能将发票归集在个人票夹中展示，请填写姓名及身份证号（自然人纳税人识别号）。如受票方为个体工商户，需填写社会统一信用代码或纳税人识别号，并在受票方自然人标识栏次选择“N”。
     * */
    private String gfzrrbs = "N";
    /**
     * 购买方名称（也就是开票方公司名称）
     * */
    private String gfmc;
    /**
     * 购买方税号，开具给自然人时可不填
     * */
    private String gfsh;
    /**
     * 销方地址(品牌方公司地址)
     * */
    private String xfdz;
    /**
     *销方开户行名称(品牌方公司收款账户开户银行支行名称)
     * */
    private String xfkhh;
    /**
     * 销方联系方式(品牌方公司联系方式)
     * */
    private String xflxdh;

    /**
     *销方银行账号(品牌方公司收款账户)
     * */
    private String xfyhzh;
    /**
     * 明细集合(订单内容)
     * */
    private List<OrderDetail> mxList;

    /**
     * 扩展信息
     * */
    private SpExt spExt;
}
